package com.woniuxy.mapper;

import com.woniuxy.entity.dto.operations.CostRulesDetailDTO;
import com.woniuxy.entity.dto.operations.CostRulesDisplayDTO;
import com.woniuxy.entity.po.operations.ChargingStages;
import com.woniuxy.entity.po.operations.CostRules;
import com.woniuxy.service.CostRulesService;
import com.woniuxy.util.ResponseData;

import java.util.List;

/**
* @author Quan
* @description 针对表【cost_rules(存储充电站的计费规则信息)】的数据库操作Mapper
* @createDate 2025-03-27 15:28:01
* @Entity com.woniuxy.entity.po.operations.CostRules
*/
public interface CostRulesMapper {
	List<ChargingStages> queryAllChargingStages();
 	
	/** 
	 * @Description: 将前端传来的规则的名称，描述状态等加入该规则中
	 * @Param: [costRulesDetailDTO]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void addCostRules(CostRulesDetailDTO costRulesDetailDTO);

	/**
	 * @Description: 批量将规则添加到bind_cost_and_type_rules表中
	 * @Param: [costRulesDetailDTO]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void batchAddBindCostAndTypeRules(CostRulesDetailDTO costRulesDetailDTO);

	/**
	 * @Description: 查询全部规则信息或者条件查询
	 * @Param: [costRulesDisplayDTO]
	 * @return: java.util.List<com.woniuxy.entity.dto.operations.CostRulesDetailDTO>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	List<CostRulesDetailDTO> queryAll(CostRulesDisplayDTO costRulesDisplayDTO);

	/**
	 * @Description: 通过cost_rules中id查询对应规则的详细信息
	 * @Param: [id]
	 * @return: java.util.List<com.woniuxy.entity.dto.operations.CostRulesDetailDTO>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	CostRulesDetailDTO queryById(Long id);

	/**
	 * @Description: 通过id对costRule中的内容进行删除
	 * @Param: [id]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void deleteCostRuleById(Long id);

	/**
	 * @Description: 对bind_cost_and_type_rules中 cost_rules_id对应的数据逻辑删
	 * @Param: [id]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void deleteBindCostAndTypeRules(Long id);

	/**
	 * @Description: 通过对应的id禁用cost_rule数据
	 * @Param: [costRulesService]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void updateCostRulesCondition(CostRulesDetailDTO costRulesDetailDTO);

	/**
	 * @Description: 对cost_rule中的内容进行更新
	 * @Param: [costRulesDetailDTO]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	void updateCostRules(CostRulesDetailDTO costRulesDetailDTO);
}




